/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gestionActividades;
import java.util.ArrayList;
import java.text.SimpleDateFormat;  
import java.text.ParseException;  


/**
 *
 * @author Crisanto Jiménez López de Teruel
 */
public class GestorActividad {
    public ActividadDB actDB = new ActividadDB();
    
    public boolean validarFecha(String fecha) {  
  
        if (fecha == null)  
        return false;  

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); //año-mes-dia  

        if (fecha.trim().length() != dateFormat.toPattern().length())  
            return false;  

        dateFormat.setLenient(false);  

        try {  
        dateFormat.parse(fecha.trim());  
        }  
        catch (ParseException pe) {  
        return false;  
        }  
        return true;  
    }
    
    public boolean ComprobarDatosActividad(String nom, String dir, String loc, String fi, String ff, String des){
        if ((nom == null) || (nom.equals(""))){
            return false;
        }
        if ((dir == null) || (dir.equals(""))){
            return false;
        }
        if ((loc == null) || (loc.equals(""))){
            return false;
        }
        if ((fi == null) || (fi.equals(""))){
            return false;
        }
        if ((ff == null) || (ff.equals(""))){
            return false;
        }
        if ((des == null) || (des.equals(""))){
            return false;
        }
        if(!validarFecha(fi) || !validarFecha(ff)){
            return false;
        }
        
        return true;
    }
    
    public boolean IntroducirDatosActividad(String nom, String dir, String loc, String fi, String ff, String des){
       int id;
       
       if(!this.ComprobarDatosActividad(nom, dir, loc, fi, ff, des)){
           return false;
       }
       
       if((id=actDB.CrearActividad(nom, dir, loc, fi, ff, des)) == -1){
            return false;
       }
        //return actDB.setActividad(id, nom, dir, loc, fi, ff, des);    // Esto no sirve creo
       return true;
    }
    
        
    public Actividad MostrarActividad(String nom){
       return actDB.getActividad(nom);
    }
    
    public boolean ActualizarDatosActividad(int id, String nom, String dir, String loc, String fi, String ff, String des){
                
        if(!this.ComprobarDatosActividad(nom, dir, loc, fi, ff, des)){
           return false;
       }
        
        if (actDB.setActividad(id, nom, dir, loc, fi, ff, des)){
            return true;
        }
        else{
            return false;
        }
        
    }
     
    public boolean BorrarActividad(int id_Actividad){
        return actDB.DarBajaActividad(id_Actividad);  
    }
    
    public Boolean InscribirJugadorActividad(int id_jug, int id_act){
        return actDB.AsociarJugadorActividad(id_jug, id_act);
    }
    
    public Boolean DarBajaJugadorActividad(int id_jug, int id_act){
        return actDB.BajaJugadorActividad(id_jug, id_act);
    }

}
